using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Collections;
using ImagesMath;


namespace TNI
{
    public class Voisinage
    {
        private List<Vz2> listVz2;

        public Voisinage()
        {
            listVz2 = new List<Vz2>();

            listVz2.Add(new Vz2(-1, -1));
            listVz2.Add(new Vz2(0, -1));
            listVz2.Add(new Vz2(1, -1));

            listVz2.Add(new Vz2(-1, 0));
            listVz2.Add(new Vz2(0, 0));
            listVz2.Add(new Vz2(1, 0));

            listVz2.Add(new Vz2(-1, 1));
            listVz2.Add(new Vz2(0, 1));
            listVz2.Add(new Vz2(1, 1));
        }

        public int NombreDelement
        {
            get { return listVz2.Count; }
        }

        public Signal1D<Color> Decalage(int nc)
        {
            Vz2 v = new Vz2(1, 1);
            
            Signal1D<Color> sd = new Signal1D<Color>();
            long x, y;
            for (int i = 0; i < 9; i++)
            {
                x = listVz2[i].X;
                y = listVz2[i].Y * nc;
                sd.Data.Add(new Color());
                sd.Data[i].NiveauDeGrisNaturel = x + y;
            }
            return sd;
        }

        public bool FenetreCentrale(ref Pz2 CSG,ref Pz2 CID, int nc, int nl)
	        {
                bool ret = false;
                if (nc >= 3 && nl >= 3)
                {
                    CSG = new Pz2(1, 1);
                    CID = new Pz2(nc - 2, nl - 2);
                    ret = true;
                }
                return ret;

	        }
    }
}
